package demo6;

import java.util.ArrayList;

public class Main {
    public static void main(String[] args) {
        // 重点1：泛型方法独立于泛型类，泛型方法的数据类型不是通过泛型类确定
        //     而是在调用泛型方法的时候，从参数确定，因此
        // 重点2：非泛型类里可以创建泛型方法


        System.out.println("public <E> E getProduct(ArrayList<E> list)::");
        //1、创建一个抽奖器的(泛型)类对象
        ProductGetter<String> stringProductGetter = new ProductGetter<>();

        ArrayList<Integer> integers = new ArrayList<>();
        integers.add(578);
        integers.add(245);
        integers.add(297);

        stringProductGetter.print(integers);


        //2、通过创建的(泛型)类对象访问泛型方法
        Integer product1 = stringProductGetter.getProduct(integers);

        //打印数据类型：变量.getClass().getSimpleName()
        System.out.println(product1 + "\t" + product1.getClass().getSimpleName());


        ProductGetter.printType("小黑子",666,true);

        ProductGetter.printf("香精煎鱼", "香翅捞饭", "油饼", "梅素汁");


    }
}
